package com.matrix.marketing.service;

import com.matrix.api.marketing.vo.CheckInResultVO;
import com.matrix.api.marketing.vo.UserCouponVO;
import com.matrix.api.marketing.vo.UserPointsVO;

import java.util.List;

/**
 * @author 有点甜
 * @since 2025/8/1
 */
public interface MarketingUserService {

    /**
     * 用户执行签到操作
     * @param userId 用户ID
     * @return 签到结果,包含连续签到天数和是否获得优惠券
     */
    CheckInResultVO userCheckIn(Long userId);

    /**
     * 获取用户的优惠券列表
     * @param userId 用户ID
     * @param shopId 店铺ID
     * @return 用户的优惠券列表
     */
    List<UserCouponVO> getMyCoupons(Long userId, Long shopId);

    /**
     * 获取用户的积分信息
     * @param userId 用户ID
     * @return 用户的积分信息
     */
    UserPointsVO getMyPoints(Long userId);

    /**
     * 兑换优惠券
     * @param userId 用户ID
     * @param pointsToUse 兑换的优惠券积分数
     * @return 兑换结果
     */
    UserCouponVO exchangeCouponWithPoints(Long userId, int pointsToUse);
}
